package funcionario;

import java.sql.SQLException;
import java.util.Collection;

import funcionario.exceptions.ExceptionNuloOuVazio;

public class CadastroFuncionario {
	private IRepositorioFuncionario reposFuncionario = new RepositorioBDFuncionario();

	public IRepositorioFuncionario getReposFuncionario() {
		return reposFuncionario;
	}

	public void setReposFuncionario(IRepositorioFuncionario reposFuncionario) {
		this.reposFuncionario = reposFuncionario;
	}
	
	public void InserirFuncionario(Funcionario empregado) throws ExceptionNuloOuVazio, ClassNotFoundException, SQLException{
		if (empregado.getNomeFuncionario().equals("")){
			throw new ExceptionNuloOuVazio();
		}	
		reposFuncionario.CadastrarFuncionario(empregado);
	}
	
	public void ExcluirFuncionario(Funcionario empregado) throws ExceptionNuloOuVazio, ClassNotFoundException, SQLException{
		if(empregado.getNomeFuncionario().trim().length() < 1 ){
			throw new ExceptionNuloOuVazio();
		}
		reposFuncionario.ExcluirFuncionario(empregado);
	}
	
	public void AlterFuncionario(Funcionario empregado) throws ExceptionNuloOuVazio, SQLException, ClassNotFoundException{
		if (empregado.getNomeFuncionario().trim().length() < 1){
			throw new ExceptionNuloOuVazio();
		}
		reposFuncionario.AlterarFuncionario(empregado);
	}
	
	public Funcionario PesquisarFuncionario(String vCodigo) throws ExceptionNuloOuVazio, ClassNotFoundException, SQLException{
		Funcionario empregado = reposFuncionario.PesquisarFunicionario(vCodigo);
		if(empregado == null){
			throw new ExceptionNuloOuVazio();
		}
		return empregado;
	}
	
	public Collection<Funcionario> listTodos() throws SQLException, ClassNotFoundException{
		return reposFuncionario.getListaFuncionario();
	}
	public String pegarcod() throws ClassNotFoundException, SQLException{
		return reposFuncionario.pegarcod();
	}
	
	public int pegarendereco(int codfunc) throws ClassNotFoundException, SQLException{
		return reposFuncionario.pegarendereco(codfunc);
	}
	public Collection<Funcionario> pesqListaFuncionario(String vNome) throws ClassNotFoundException, SQLException, ExceptionNuloOuVazio{
		if (vNome.trim().length() < 0){
			throw new ExceptionNuloOuVazio();
		}
		return reposFuncionario.pesqListaFuncionario(vNome);
	}
	
}
